unit u_tanke; //Diese Unit ist eine leicht abgewandelte Kopie von u_rechteck

interface

uses Graphics, ExtCtrls, u_Punkt;

type
   T_Tanke = class(T_Punkt)   // Die Klasse Tanke erbt von T_Punkt,
      protected
         //breite : integer;   //Koordinaten der unteren rechten Ecke;
         //hoehe : integer;
         hb : integer;
         rechnung : integer;

      public
         constructor Create(x_1, y_1:integer; ort: TImage);
         procedure Zeichne; override;
         procedure SetPos(new_x, new_y: integer);
         procedure SetzKosten(a:integer);

         function InRechteck(x,y,b,h:integer):boolean;
         function Kosten:integer;

   end;


implementation

{ T_Tanke }

constructor T_Tanke.Create(x_1, y_1:integer; ort: TImage);
begin
   //inherited;

   x_ol := x_1;      // Die beiden ersten Variablen stammen von den
   y_ol := y_1;      // geerbten Eigenschaften von T_Punkt;
   //breite := b;      // Breite und Hoehe sind notwendige Informationen
   //hoehe := h;      // zum Zeichnen eines Rechtecks und werden in der
                    // Klasse Rechteck ergänzt

   hb := 30;

   rechnung := 0;

   Leinwand := ort;

   status := 0;


end;

function T_Tanke.InRechteck(x, y, b, h: integer): boolean;
begin
//   result := false;

   if ((x + b)  >= x_ol) AND (x <= (x_ol + hb)) AND ((y+h) >= y_ol) AND (y <= (y_ol + hb)) then
      result := true
   else
      result := false;

end;




// Diese Prozedur überschreibt die Prozedur von T_Punkt
function T_Tanke.Kosten: integer;
begin
  result := rechnung;
end;

procedure T_Tanke.SetPos(new_x, new_y: integer);
begin
   Visible(false);   // Grafikobjekt wird unsichtbar auf der Zeichenfläche

      x_ol := new_x;   // Grafikobjekt bekommt neue Ursprungskoordinaten
      y_ol := new_y;   // zugewiesen

   Visible(true);   // Grafikobjekt wieder anzeigen
end;

procedure T_Tanke.SetzKosten(a: integer);
begin
  rechnung := rechnung + a;
end;

procedure T_Tanke.Zeichne;
begin
   Leinwand.Canvas.Brush.Color:= clgreen;
      Leinwand.Canvas.Ellipse(x_ol,y_ol,x_ol + hb, y_ol + hb);
   Leinwand.Canvas.FloodFill(x_ol, y_ol, clBlack, fsBorder);

   Leinwand.Canvas.Brush.Color:= clyellow;
      Leinwand.Canvas.Rectangle(x_ol,y_ol,x_ol + hb, y_ol + hb);
end;

end.

